const mongoose = require('mongoose');

// 科室管理表
const departmentSchema = new mongoose.Schema({
    // 科室名称
    name: {
        type: String,
        required: true,
        trim: true
    },
    // 科室代码
    code: {
        type: String,
        required: true,
        unique: true,
        trim: true
    },
    // 科室描述
    description: {
        type: String,
        default: ''
    },
    // 科室类型
    type: {
        type: String,
        enum: ['内科', '外科', '妇科', '儿科', '眼科', '口腔科', '皮肤科', '中医科', '急诊科', '其他'],
        default: '其他'
    },
    // 科室位置
    location: {
        type: String,
        default: ''
    },
    // 联系电话
    phone: {
        type: String,
        validate: {
            validator: function(v) {
                return !v || /^1[3-9]\d{9}$/.test(v) || /^0\d{2,3}-?\d{7,8}$/.test(v);
            },
            message: '电话号码格式不正确'
        }
    },
    // 科室主任
    director: {
        type: String,
        default: ''
    },
    // 科室状态
    status: {
        type: String,
        enum: ['active', 'inactive'],
        default: 'active'
    },
    // 排序字段
    sort: {
        type: Number,
        default: 0
    },
    // 创建时间
    createTime: {
        type: Date,
        default: Date.now
    },
    // 更新时间
    updateTime: {
        type: Date,
        default: Date.now
    }
}, {
    timestamps: true,
    collection: 'departments'
});

// 更新时间中间件
departmentSchema.pre('save', function(next) {
    this.updateTime = new Date();
    next();
});

module.exports = mongoose.model('Department', departmentSchema); 